<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>

    <script>

        // 统计

        // var arr = [3,1,2,4,2,1,3,3] ;
        // 把数组中的每一个值都统计一下

        // 把第一个值3  拿出来统计
        //    搞一个变量   计数器  0


        // 把第一个值3  拿出来统计
        // var count = 0 ;
        // for(var i in arr) {
        //     // 判断是否相同
        //     if(arr[i] === 3) {
        //         count++ ;
        //     }
        // }
        // console.log(3 + '出现了' + count + '次');


        // // 把第二个值1  拿出来统计
        // var count = 0 ;
        // for(var i in arr) {
        //     // 判断是否相同
        //     if(arr[i] === 1) {
        //         count++ ;
        //     }
        // }
        // console.log(1 + '出现了' + count + '次');

        // 把每一个值拿出来统计
        // for(var j in arr) {
        //     // 
        //     var count = 0 ;
        //     for(var i in arr) {   // 比较是否相同
        //         // 判断是否相同
        //         if(arr[i] === arr[j]) {
        //             count++ ;
        //         }
        //     }
        //     console.log(arr[j] + '出现了' + count + '次');
        // }

        // 如上方法会出现重复统计

        var arr = [3, 1, 2, 4, 2, 1, 3, 3];
        // 每一个值只统计一次

        //    需要先把不重复的值拿出来   [3,1,2,4]

        // 思路：先去重，再统计

        var newArr = noRepeat(arr);

        console.log(newArr);

        // 遍历新数组 --- 不重复的
        for (var i in newArr) {
            // 声明一个计数器
            var count = 0;
            // 判断这个值在原数组中出现的次数
            for (var j in arr) {
                if (newArr[i] === arr[j]) {
                    count++;
                }
            }
            // 循环结束之后，打印count
            console.log(newArr[i] + '出现了' + count + '次');
        }




        function noRepeat(arr) {
            // 1 搞一个新的数组
            var newArr = [];
            // 2 把原来数组中的每一个值都拿出来
            for (var i = 0; i < arr.length; i++) {
                // 3 在新的数组中判断这个值是否存在    
                // if(newArr.includes(arr[i]) === false) {
                if (!newArr.includes(arr[i])) {
                    // 不存在就存入新数组
                    newArr.push(arr[i]);
                }
            }
            return newArr
        }


    </script>

</body>

</html>